AWSが主要クラウドとしては初めてArm系のGPUインスタンスG5gを提供開始 #reinvent
re:invent 2018でArmベースのEC2 A1が発表され、翌年2019年には Graviton 2 が発表されました。 Graviton 2の大きな特徴の一つは、同性能の他社プロセッサーに比べるとコスパが非常に優れていることです。 現在では、EC2/Lambda/Fargate/RDSなど様々なサービスで利用できます。
Graviton2 の登場から2年経過し、今度は主要クラウドとして初めてとなる Arm ベースの GPU インスタンス G5G が登場しました。
- New – Amazon EC2 G5g Instances Powered by AWS Graviton2 Processors and NVIDIA T4G Tensor Core GPUs | AWS News Blog
- AWS Launches First NVIDIA GPU-Accelerated Graviton-Based Instance with Amazon EC2 G5g | NVIDIA Developer Blog
NVIDIAと協力して開発され、NVIDIA T4G Tensor Core GPUを搭載し、NVENC, NVDEC, nvJPEG, OpenGL, Vulkan, CUDA, CuDNN, CuBLAS, TensorRTなど各種ライブラリを利用できます。
- Androidゲームのストリーミング
- 機械学習の推論
- 自動運転シミュレーション
などに向いています。
EC2 G5g インスタンスは東京を含む以下のリージョンで利用可能です。
- 東京
- ソウル
- バージニア北部
- オレゴン
現時点では見当たりませんでしたが、 AWS Deep Learning AMI でも提供されるそうです。
最小スペックは GPUを1基搭載した g5g.xlargeで、 最大スペックは、GPUを2基搭載した g5g.16xlarge とベアメタルのg5g.metal です。
Instance Size | GPU | vCPU | Memory (GiB) | Instance Storage | Network Bandwidth (Gbps) | EBS Bandwidth (Gbps) |
---|---|---|---|---|---|---|
g5g.xlarge | 1 | 4 | 16 | EBS-Only | Up to 10 | Up to 3.5 |
g5g.2xlarge | 1 | 8 | 16 | EBS-Only | Up to 10 | Up to 3.5 |
g5g.4xlarge | 1 | 16 | 16 | EBS-Only | Up to 10 | Up to 3.5 |
g5g.8xlarge | 1 | 32 | 16 | EBS-Only | 12 | 9 |
g5g.16xlarge | 2 | 64 | 32 | EBS-Only | 25 | 19 |
g5g.metal | 2 | 64 | 32 | EBS-Only | 25 | 19 |
GPUが異なるので単純な比較はできませんが、バージニア北部でNVIDIA A10を搭載したG5(今月リリースされたばかり)と今回のT4Gを搭載したG5Gのxlargeタイプのオンデマンド単価を比較すると
- g5.xlarge : $1.006
- g5g.xlarge : $0.42
と6割も安いです。
Androidゲームストリーミングの例では、30%までコストを抑えられたそうです。
These instances provide up to 30 percent lower cost per stream per hour for Android game streaming than x86-based GPU instances.
https://aws.amazon.com/blogs/aws/new-amazon-ec2-g5g-instances-powered-by-aws-graviton2-processors-and-nvidia-t4g-tensor-core-gpus/
Ubuntu 18.04 に CUDA をインストールしてみる
Ubuntu 18.04 で最小サイズの G5g.xlarge インスタンスを起動し、公式ドキュメント に従って、CUDA Toolkit 11.5 をインストールしてみます。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/sbsa/cuda-ubuntu1804.pin $ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 $ wget https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda-repo-ubuntu1804-11-5-local_11.5.1-495.29.05-1_arm64.deb $ sudo dpkg -i cuda-repo-ubuntu1804-11-5-local_11.5.1-495.29.05-1_arm64.deb $ sudo apt-key add /var/cuda-repo-ubuntu1804-11-5-local/7fa2af80.pub $ sudo apt-get update $ sudo apt-get -y install cuda
ツールキットは /usr/local/{cuda,cuda11,cuda11.5} 以下にインストールされます。
GPU プロセッサに「NVIDIA T4G」の文字を確認できますね。
$ uname -p aarch64 $ nvidia-smi Mon Nov 29 20:20:48 2021 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 495.29.05 Driver Version: 495.29.05 CUDA Version: 11.5 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA T4G On | 00000000:00:1F.0 Off | 0 | | N/A 43C P8 9W / 70W | 0MiB / 15109MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ $ ls /usr/local/ bin cuda cuda-11 cuda-11.5 etc games include lib man sbin share src
CPU はもちろん Gravition 2 です。
$ lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 BogoMIPS: 243.75 L1d cache: 256 KiB L1i cache: 256 KiB L2 cache: 4 MiB L3 cache: 32 MiB NUMA node0 CPU(s): 0-3 Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Not affected Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
最後に
最近は機械学習の広まりにより、AWS利用費に高額なGPU系インスタンスの占める割合が増えています。
コスト削減のためには、スポットインスタンスだけでなく、今後はArmベースのGPUインスタンスの活用も肝になってきそうです。
それでは。
参考
- 製品ページ
- New – Amazon EC2 G5g Instances Powered by AWS Graviton2 Processors and NVIDIA T4G Tensor Core GPUs | AWS News Blog
- Announcing new Amazon EC2 G5g instances powered by AWS Graviton2 processors
- AWS Launches First NVIDIA GPU-Accelerated Graviton-Based Instance with Amazon EC2 G5g | NVIDIA Developer Blog